package cn.lavender.unit.service;

import cn.lavender.unit.utils.ConfigUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

/**
 * @RunWith ：告诉Junit使用指定的Runner来运行TestCase，若不指定则使用默认的Runner。
 * @PrepareForTest ：告诉PowerMock提前准备一个ConfigUtils的class。（静态调用需要mock到）
 */
@RunWith(PowerMockRunner.class)
@PrepareForTest({ConfigUtils.class})
public class UserServiceTest1 {

    /**
     * 4：Mock静态方法
     * {@link UserService#getDbIp()}
     */
    @Test
    public void testStaticMethodWithReturn() {
        PowerMockito.mockStatic(ConfigUtils.class);
        PowerMockito.when(ConfigUtils.getDbIp()).thenReturn("127.0.0.1");

        UserService userService = new UserService();
        String ip = userService.getDbIp();
        Assert.assertEquals("127.0.0.1", ip);
    }

}
